“Robert” and “Bob” refer to the same first name but are textually dissimilar. Traditional string similarity functions do not allow a flexible way to account for such synonyms, abbreviations, aliases, and other semantic equivalencies. String transformations are mappings from one string to another, for example, “Robert”→“Bob”. Identifying an appropriate set of transformations is challenging as the number of possible transformations is usually large. Techniques related to leveraging known examples of matched strings to learn string transformations are described below.